package com.itheima;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class a03mystreamDemo {
    public static void main(String[] args) {
        //创建一个ArrayList集合，并添加以下字符串，字符串中前面是姓名，后面是年龄
        //"zhangsar
        //"lisi
        //"wangwu5as
        //保留年龄大于等于24岁的人，并将结果收集到Map集合中，姓名为键，年龄为值

        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"zhangsan,23","lisi,24","wangwu,25");

        /*匿名内部类：先创建一个接口对象，再把接口对象作为参数传递给stream()方法
                     用stream先过滤，再收集*/
        Map<String, Integer> map = list.stream().filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
                int age = Integer.parseInt(s.split(",")[1]);
                return age >= 24;
            }
        }).collect(Collectors.toMap(new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.split(",")[0];
            }
        }, new Function<String, Integer>() {
            @Override
            public Integer apply(String s) {
                return Integer.parseInt(s.split(",")[1]);
            }
        }));


        //lambda方法



        //打印流中的元素
        System.out.println(map);



    }
}
